var http = require('http');
var fs = require('fs');
var url = require('url');
var qs = require('querystring');   //post传参要引入

// 实例化并且启动服务
http.createServer(function(req,res){

    // 请求头编码
    res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});

    // 获取路由
    var pathname = url.parse(req.url).pathname;
    if(pathname == '/'){

        // 把首页串联起来,所以要读取
        fs.readFile('./7.1案例练习.html','utf8',function(err,data){
            if(err){
                res.end('进入首页失败');
            }else{
                res.end(data);
            }
        })
    }else if(pathname == '/add'){
        // 将json数据读取出来
        fs.readFile('./data.json','utf8',function(err,data){
            if(err){
                res.end('添加数据时读取失败');
            }else{
                // 读取现有数据
                var arr = JSON.parse(data);
                // 转换前台传进来的数据
                // 声明一个空字符串
                var postData = '';
                // 监听前台传过来的数据
                req.on('data',function(v){
                    postData += v;
                })
                // 监听结束
                req.on('end',function(){
                    // 对于前台传进来的数据,进行序列化处理
                    var obj = qs.parse(postData);
                    obj.id = new Date().getTime();   //手动给每一条数据添加一个时间戳
                    arr.push(obj);   //数据尾部添加
                    var str = JSON.stringify(arr);   

                    //把添加后的所有数据写入到json文件中
                    fs.writeFile('./data.json',str,function(err,data){
                        if(err){
                            res.end('添加失败');
                        }else{
                            res.end('添加成功');
                        }
                    }) 
                })
            }
        })
        // res.end('添加');
    }else if(pathname == '/list'){
        // 读取json文件数据
        fs.readFile('./data.json','utf8',function(err,data){
            if(err){
                res.end('读取数据失败');
            }else{
                res.end(data);
            }
        })


        // res.end('渲染');
    }else if(pathname == '/del'){
        // res.end('删除');
        fs.readFile('./data.json','utf8',function(err,data){
            if(err){
                res.end('删除失败');
            }else{
                var arr = JSON.parse(data);
                // 获取地址栏传进来的参数id
                var id = url.parse(req.url,true).query.id;

                // 删除
                var index = arr.findIndex(function(item){
                    return item.id == id;
                })
                arr.splice(index,1);

                var str = JSON.stringify(arr);

                fs.writeFile('./data.json',str,function(err){
                    if(err){
                        res.end('删除失败');
                    }else{
                        res.end('删除成功');
                    }
                })
            }
        })
    }

}).listen(3000,function(){
    console.log('启动成功,http://127.0.0.1:3000');
})